日常业务 内容 概述 初始化 零用金业务 批量付款 概述 从支付(账面变化)到对账(银行余额变化),货币资金可以使用“银行资产bank asset”和“资金在途bank in transfer”两个科目来记录变化。 当系统中发生一笔“支付Payment”,日记账分录记入“资金在途bank in transfer”。 当获得银行对账单时,输入一笔“银行对账单bank Statement”,匹配到相应支付分录记入“银行资产bank asset”。 理想状态下,科目表“银行资产bank asset”+“资金在途bank in transfer”= “银行余额”+ “银行未达账总额”。如下表所示。 零用金也被当作一个“银行账户”来处理,期初可以由“bank acount”转账来实现。 业务 iDempiere系统总账 外部银行账面 期初 银行资金=100,在途资金=0,银行余额=100 银行余额=100(银行未达账=0) 支付(收款50) 银行资金=100,在途资金+50=50,银行余额=100不变动 银行资金+在途资金 > 银行余额 无帐号事务发生,银行余额=100不变动 银行端业务 “闪电”到账 总账无变化 同上,无变化 银行资金+在途资金 > 银行余额 帐号事务发生,银行余额+50=150 对账 银行资金+50=150,在途资金-50=0,银行余额+50=150 银行资金+在途资金= 银行余额 银行余额=150无变化 (此时,外部银行余额才更新到id银行账户中) 再发生一笔支付(收款9999) 银行一直到不了帐,对账后 银行资金=150,在途资金=9999,银行余额=150 iD提供“未对账支付明细 UnReconciled Payments”(相当于未达账)给银行查对 银行余额=150无变化 不到账,银行也无解 后续 1. 继续等到账。 2. 坏账冲销。【Receivables Write off】 银行收到客户催查后,给出未达账的解决办法。 初始化 在初始化总账科目后,用户的银行初始化数据通常是这样的: 银行帐号 余额 未达账 银行帐号1 1234 345 银行帐号2 2345 456 .... 银行帐号9 3333 888 \============================ 初始余额 8888 2222 如果都指定到同一个“bank asset”和“bank in transfer”,不设银行明细科目: 1. 导入银行余额。每个银行新建一个费用,科目链接到bank asset,创建一笔付款(银行余额)到费用,创建这笔付款的银行对账单,过账即可。 2. 导入银行未达账。每个银行新建一个费用,科目链接到bank in transfer,创建各笔付款(银行未达账)到费用。过账即可。(生成所有bank in transfer期初余额。) #####问题1:多个银行帐号是否用多个科目管理? 从id的科目来看,它按照“付款类型”和“付款状态”来确定资金的流向,而不是按照通用的“银行账户”开设明细科目。 从系统设计上(底下有几千个子公司)说,可以只有一个"银行资产"和“资金在途”科目。 所有银行的信息在【组织规则】-【银行现金】中维护,这也是为什么【银行现金】不在总账菜单而在组织菜单中的原因。 想查询不同银行帐号余额和在途金额,需要自定义“bank info”窗口(如下图)。 #####问题2:成百上千的银行账户,怎么处理: 1. 导入费用。(初始化后可以取消启用) 2. 导入付款批,批过账。 3. 导入对账单,一次过账。 #####问题3:中途新建一个银行帐号如何初始化? 新开一个银行账户,余额肯定是0,等待收款。或者从其他银行转帐【Bank/Cash Transfer】,等待付款。 #####问题4:非要在资金科目下设银行子科目(按币种或者按需求),如何初始化? 1. 新建明细科目Bank1 Asset和Bank1 in transfer。 2. 新建银行账户,挂明细科目Bank1 Asset和明细在途科目Bank1 in Transfer。 3. 设置明细科目为“银行账户”,并选择“具体银行账户Bank1”和“外币”。 4. 按上述方法导入明细科目期初余额(新建费用到明细科目“Bank1 Asset”,该银行付款到费用,再做该付款的银行对账单)。 5. 按上述方法导入明细科目未达余额(新建费用到明细科目“Bank1 in transfer”,该银行创建付款到费用,过账得到该账户的未达余额)。 #####问题5:为什么不能直接输入科目余额,而用做具体单据导入期初数据这么麻烦的办法? 1. 按照id的设计,所有科目的余额都是由单据产生的,这样能有效追溯数据的来源。 2. 不用“初始化单据”的做法,是因为这么做和做具体业务单据一样。 3. 其他BP期初余额(做付款单据导入),成本数据(做采购导入),科目余额(做凭证导入)都是一样的道理。 ####科目设置#### 1. 【记账模式】<----【银行】-【记账】 银行资产Bank Asset=\*-11100-_-_-_-_ 在途资金Bank In Transit=\*-11110-_-_-_-_ 付款选择Payment Selection=\*-21300-_-_-_-_ 未分配现金Unallocated Cash=\*-11130-_-_-_-_ 银行利息费用Bank Interest Expense=\*-82100-_-_-_-_ 银行利息收入Bank Interest Revenue=\*-80100-_-_-_-_ ####银行设置#### 1. 【系统管理】-【总体规则】-【组织规则】-【银行现金】,银行可指定组织(需要后台限定下按组织访问银行) 2. 可以新建银行类型、零用金类型、网银类型、虚拟货币类型记录。 3. 各银行记录下可建不同账户。账户下设文档类型(单号)和默认科目,以指示系统过账。 4. 【财务规则】-【科目】设置总账科目的属性,指定到银行账户和币种,如下图。(只是报表标识用字段,无其他功能) 5. 系统支持在线网银接口,可直接在窗口内支付。 注:“OwnBank自有银行”选项:导入支付单据和银行对账单仅限于自有银行,也用来区分帐号是属于本公司还是合作伙伴。(有点BUG) https://groups.google.com/d/msg/idempiere/IMjEWF39eXI/kRLdEMUu2HsJ ####动态校验1:付款单据号#### 支付窗口,使用本组织的多个银行账户,可以选择用不同的序列号来区分。 1. 按下设置不同的单据类型记录和序列号记录,id请参考实际数据。 银行帐号1 (id=1000) 单据类型(id=1000)=AR Reciept 账户1,序列号 =BA11-000001 (id=1000) 单据类型(id=1001)=AP Payment 账户1,序列号 =BA12-000001 (id=1001) 银行帐号2 (id=1001) 单据类型(id=1002)=AR Reciept 账户2,序列号 =BA21-000001 (id=1002) 单据类型(id=1003)=AP Payment 账户2,序列号 =BA22-000001 (id=1003) 2. 支付窗口的“单据类型”的动态校验值可以设置: (C_BankAccount_ID=1000 AND C_DocType_ID IN (1000,1001)) OR (C_BankAccount_ID=1001 AND C_DocType_ID IN (1002,1003)) 3. 参考:https://groups.google.com/d/msg/idempiere/usBRDuU7qRs/8qPROTZ5tjIJ ####动态校验2:币种匹配#### 支付窗口,选择银行账户,支付的币种将限定于该银行。 支付窗口的“币种”的动态校验值可以设置: C_Currency.C_Currency_ID IN (SELECT C_Bankaccount.C_Currency_ID FROM C_BankAccount WHERE C_BankAccount_ID=@C_BankAccount_ID@) 科目设置 内控要求 出纳支付,会计对账和盘点货币资金。(玩笑:会计,都自动化,你快没有活了!) 零用金业务 按上,零用金账户也如同银行一样进行业务处理,唯一与传统业务控制不同:零用金和银行都不做账实核对,即不通过检查余额反查业务漏记,而是核对每笔支付的逐一对应而得出正确余额。 1. 初始化 21. 现金支付1(系统自动生成支付凭证,形成现金日记账) 22. 现金支付2(手动新增凭证,选择现金日记账,需要审核???) 3. 支付现金,留回执 4. 对账(新建零用金事务日志)。对账后,在途资金和未达账都应等于0。 5. 检查未对账支付明细 UnReconciled Payments (未达账明细) 6. 检查零用金科目余额是否等于零用金账户余额。 7. 内控点:如果没有做每天的零用金账户的银行对账单,相当于没有做现金盘点。 每日银行余额(Bank info) 未对账支付明细 零用金确认 现金日记账窗口 早起版本系统自带的现金日记账已窗口经取消了,现金日记账通过“付款,分配和银行对账单”来生成分录。 http://www.globalqss.com/wiki/index.php/IDempiere/FullMeeting20120425 批量付款 1. 发福利,多个BP,多个费用